System and method for distributing user interface device configurations

ABSTRACT

A system that incorporates teachings of the present disclosure may include, for example, a computing device including a memory, a display device and a controller. The controller is programmed to provide to a first server a request for User Interface (UI) device configurations, provide to the first server configuration criteria associated with the request, receive configuration data associated with target UI device configurations from the first server, present a Graphical User Interface (GUI) on the display device based on the configuration data where the GUI displays selections for each of the target UI device configurations, provide a selection from among the selections of the target UI device configurations, and receive provisioning information from the first server that allows for implementing the selection of the target UI device configuration. Other embodiments are disclosed.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/048,007, filed Mar. 15, 2011, which is a continuation-in-part of U.S.patent application Ser. No. 12/167,342, filed Jul. 3, 2008, now U.S.Pat. No. 7,925,797, and entitled “System and Method for DistributingUser Interface Device Configurations,” the disclosures of all of whichare hereby incorporated by reference in their entirety.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to user interface devices, andmore specifically to system and method for distributing user interfacedevice configurations.

BACKGROUND

It can be technically complex and time consuming for users to configureUser Interface (UI) devices such as a navigation device (e.g., computermouse, game controller, etc.), keyboard, display and/or audio system(e.g., a loud speaker system, headset, etc.) for a computing device suchas a computer, gaming system, media player, or like device.Additionally, there may be instances where a user may desire to vary UIdevice configurations between software applications with UI-relatedfeatures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an illustrative embodiment of a computing device;

FIG. 2 depicts an illustrative embodiment of a communication system;

FIG. 3 depicts an illustrative embodiment of a method operating in thecommunication system of FIG. 2;

FIG. 4 depicts an embodiment of a graphical user interface illustrativeof the method of FIG. 3;

FIG. 5 depicts an illustrative embodiment of a method for provisioningsettings and configurations to computing devices and/or peripheraldevices;

FIG. 6 depicts an embodiment of a graphical user interface illustrativeof the method of FIG. 5;

FIG. 7 depicts an illustrative embodiment of another communicationsystem; and

FIG. 8 depicts an illustrative diagrammatic representation of a machinein the form of a computer system within which a set of instructions,when executed, may cause the machine to perform any one or more of themethodologies disclosed herein.

DETAILED DESCRIPTION

One or more of the exemplary embodiments described herein providesettings and/or User Interface (UI) device configurations that can bedownloaded or otherwise delivered to computing devices. In oneembodiment, the settings and configurations can be provided remotely,such as through use of cloud computing. In another embodiment, theselection of configurations can be filtered based on a number offactors, including configuration criteria, such as user location, userenvironment, time of day and/or parental controls. Other factors canalso be utilized in providing the selection of configurations, includinguser profiles, network load, game type, and so forth. In one embodiment,the use of a peripheral device with the host device, such as aperipheral device that is detected as being coupled with a mobile phone,can be utilized as a factor in determining the configuration that is tobe presented as an option and/or provisioned to the requestor. Inanother embodiment, bilateral programming in the cloud computing can beutilized, such as where matching of settings and configurations based onhost device and peripherals is performed to present options and/orprovision the requestor.

One embodiment of the exemplary embodiments entails a method includingreceiving a request from a first computing device for UI deviceconfigurations, where the request is received by a first server that isremote from the first computing device, and where the first server is incommunication with the first computing device over a network. The methodalso includes accessing a database comprising a plurality of UI deviceconfigurations, selecting a group of UI device configurations from amongthe plurality of UI device configurations based on operationalparameters of the first computing device, obtaining one or moreconfiguration criteria associated with the request, selecting target UIdevice configurations from among the group of UI device configurationsbased on the one or more configuration criteria, and providingconfiguration data associated with the target UI device configurationsto the first computing device for presentation of a Graphical UserInterface (GUI) that displays selections for each of the target UIdevice configurations.

Another exemplary embodiment entails a computing device including amemory, a display device, and a controller programmed to provide to afirst server a request for UI device configurations, where the firstserver is remote from the controller, and where the controller is incommunication with the first server over a network. The controller canalso be programmed to provide to the first server configuration criteriaassociated with the request, to receive configuration data associatedwith target UI device configurations from the first server where thetarget UI device configurations are selected by the first server fromamong a plurality of UI device configurations that are compatible withthe controller based on the provided configuration criteria, to presenta GUI on the display device based on the configuration data where theGUI displays selections for each of the target UI device configurations,to provide a selection from among the selections of the target UI deviceconfigurations, and to receive provisioning information from the firstserver that allows for implementing the selection of the target UIdevice configuration.

Another exemplary embodiment entails a non-transitory computer-readablestorage medium comprising computer instructions to receive a requestfrom a computing device for UI device configurations where the requestis received by a server that is remote from the computing device andwhere the server is in communication with the computing device over anetwork, to select a group of UI device configurations from among theplurality of UI device configurations based on parameters associatedwith the computing device, to determine if the computing device has aperipheral device operably connected thereto, to select a first UIdevice configuration from among a plurality of UI device configurationsstored in a memory when the computing device has the peripheral deviceoperably connected thereto, to select a second UI device configurationfrom among the plurality of UI device configurations when the computingdevice does not have the peripheral device operably connected thereto,and to provide configuration data associated with one of the first orthe second UI device configurations to the computing device.

Another exemplary embodiment entails a method including providing UIdevice configurations from a computing device to a remote server wherethe UI device configurations are based on at least one of a gamingenvironment, a gaming time, and a gaming group; providing a request fora target UI device configuration from the computing device to the remoteserver; receiving at the computing device provisioning information fromthe remote server where the provisioning information is associated withthe target UI device configuration; and provisioning at least one of thecomputing device and a peripheral device based on the provisioninginformation where the peripheral device is operably coupled with thecomputing device.

FIG. 1 depicts an illustrative embodiment of a computing device 100. Thecomputing device 100 can comprise a wireline or wireless transceiver 102(herein transceiver 102), a group of UI devices 106, a power supply 116,and a controller 104 for managing operations thereof. The transceiver102 can utilize common wireless access technologies such as cellular,software defined radio (SDR) and/or WiMAX technologies, among others.Cellular technologies can include, for example, CDMA-1X, UMTS/HSDPA,GSM/GPRS, TDMA/EDGE, EV/DO, and next generation wireless accesstechnologies as they arise.

In another embodiment, the transceiver 102 can support short-rangewireless access technologies such as Bluetooth, WiFi, or cordlesstechnologies such as Digital Enhanced Cordless Telecommunications (DECT)or Personal Handyphone System (PHS). In yet another embodiment thetransceiver 102 can support wireline technologies such as a TransmissionControl Protocol (TCP) operating in conjunction with an InternetProtocol (IP) for exchanging messages in a public Internet network overa Digital Subscriber Line (xDSL) or cable interface.

The group of UI devices106 can include a depressible or touch-sensitivekeyboard (or keypad) 108, a navigation device 110 such as a computermouse with an optical sensor and/or roller ball, wheel or navigationdisk with one or more selection buttons, a game controller or othersuitable navigation system for manipulating operations of the computingdevice 100. The group of UI devices 106 can further include a display112 such as monochrome or color LCD (Liquid Crystal Display) forconveying images to the end user of the computing device 100. In anembodiment where the display 112 is touch-sensitive, a portion of thekeyboard 108 can be presented by way of the display.

The group of UI devices 106 can also include an audio system 114 thatutilizes common audio technology for conveying low volume audio (e.g.,audio heard only in the proximity of a human ear such as by way of aheadset) and high volume audio such as a loud speaker for mono or stereoaudio presentations, hands free operation, or other suitable uses. Theaudio system 114 can further include a microphone for interceptingaudible signals of an end user thus enabling voice communications over acommon communication network and/or for speech recognition applications.The group of UI devices 106 can in whole or in part be an integral partof a housing assembly of the computing device 100. For example, aportion of the audio system 114 can be a headset with a built-inmicrophone which couples to a portion of the audio system which is anintegral part of the housing assembly of the computing device 100.

The power supply 116 can utilize common power management technologiessuch as replaceable batteries, supply regulation technologies, andcharging system technologies for charging the replaceable batteries andfor supplying energy to the aforementioned components of the computingdevice 100, thereby facilitating portable applications. The power supply116 can also utilize singly or in combination power managementtechnologies that receive power from a common power outlet and supplyregulated energy to the components of the computing device 100. Thecontroller 104 and/or the group of UI devices 106 can utilize computingtechnologies such as a microprocessor and/or digital signal processor(DSP) with an associated storage memory(ies) such a mass storage device(e.g., hard drive), Flash, ROM, RAM, SRAM, DRAM or other storagetechnologies. The devices 106 can interact with each other utilizingvarious arrangements, including a master-slave configuration and/orbeing a peripheral device for entering user inputs with the controller104.

The computing device 100 of FIG. 1 can represent without limitation alaptop computer, a desktop computer, a server, a mobile phone (e.g.,cell phone), a short-range mobility phone (e.g., a cordless or wiredoffice or home phone), or a gaming system operatively coupled to acommunication network for on-line or localized gaming. Other computingdevice embodiments suitable to the present disclosure are consideredwithin the scope of the claims described below.

In one exemplary embodiment, UI device configurations for one or more ofthe UI devices 106 can be provided to gamers or other users, includingproviding the configurations limited to the same gamer and/or exchangingconfigurations with other gamers. It should be understood that theexemplary embodiments described herein can be utilized in gamingenvironments and can also be utilized in non-gaming environment withsoftware applications being executed on behalf of other types of users.In another exemplary embodiment, the providing of configurations can beadjusted based on a number of configuration criteria including alocation of a gamer, a relationship of the gamer to other gamers, thetime of day, the environment of the gamer, and/or parental controlsplaced over providing the configurations. Each of these configurationcriteria can be utilized alone in providing the configurations and/oreach of these configuration criteria can be utilized in combination withother factors, such as the described criteria or other factors that havenot been described.

In another embodiment, the adjustment to the providing of UI deviceconfigurations can utilize one or more of these configuration criteriato select targeted UI device configurations from among a group of UIdevice configurations that are stored in a memory of the system, whichcan include a database accessible by a web server. For example, thegroup of UI device configurations can be provided to the system solelyby the gamer who is requesting configurations. In another example, thegroup of UI device configurations can be provided to the system by thegamer and/or by one or more other gamers, who may or may not beassociated with the gamer. Continuing with this example, in oneembodiment the group of UI device configurations that are stored inmemory can be generated solely based on input from gamers, althoughother factors can also be utilized.

The present disclosure also contemplates the group of UI deviceconfigurations, which are stored in memory, being based onconfigurations or other information provided by sources other thangamers. For instance, a developer of a game can provide one or more UIdevice configurations that it believes is optimal for its game. Inanother example, stored UI device configurations received from gamerscan be adjusted by the system to be more compatible with potentialconfiguration criteria, such as the time of day or environment in whichit is anticipated the game will be played. For instance, a UI deviceconfiguration can be received from a gamer, which results in depictionof violent graphics. This UI device configuration can then be adjustedto depict less violent graphics in accordance with the configurationcriteria of parental control, a gamer's age and so forth. The system canstore both the original UI device configuration and the adjusted UIdevice configuration (e.g., a different age-based version)_so that theconfiguration criteria can be applied for selecting among the twopotential configurations. In another example, a UI device configurationcan be received from a gamer which includes a macro for audiblypresenting a message during a game, such as telling another player to“duck.” This UI device configuration can then be adjusted to lower thevolume of the message or add a graphical indicator to the message inaccordance with the configuration criteria of time of day orenvironmental lighting. The system can store both the original UI deviceconfiguration and the adjusted UI device configuration so that theconfiguration criteria can be applied for selecting among the twopotential configurations.

In one embodiment, targeted UI device configurations that have beenselected from among a group of UI device configurations that are storedin the memory of the system, can be presented to a requesting gamer forprovisioning his or her computing device. The gamer can then select fromamong the targeted UI device configurations to configure the computingdevice. Using this exemplary embodiment, the system is able to filter UIdevice configurations based on one or more configuration criteria sothat a list of UI device configuration from which the requesting gamercan choose, are more suited for the requesting gamer's needs, includinghis or her particular environment. In another embodiment, the system canapply the configuration criteria and operational parameters of the hostand/or peripheral device to determine a target UI device configurationand to transmit the provisioning information for the targetconfiguration based on the determination without the need for aselection by the user.

FIG. 2 depicts an illustrative embodiment of a communication system 200.The communication system 200 can comprise a portal 202 operating fromone or more common web servers 204. The portal 202 can becommunicatively coupled to a plurality of computing devices 100representing any of the aforementioned embodiments of the computingdevice of FIG. 1. The computing devices 100 can exchange messages withthe portal 202 by way of the communication network 201 which can utilizecommon circuit-switching technology and/or packet-switching technologyto support communication sessions therebetween. The circuit-switching orpacket-switching technologies can correspond to common wireline orwireless access technologies supportive of the access technologiespreviously described for the computing device 100 of FIG. 1, as well ascombinations thereof.

The portal 202 can support the exchange of UI device configurations asdescribed by method 300 of FIG. 3. FIG. 4 depicts an embodiment of agraphical user interface illustrative of method 300.

Method 300 can begin with step 302 in which users of computing devices100 subscribe to the portal 202 to manage UI device configurations. Eachuser can access the portal 202 by way of a common Internet browser(e.g., Mozilla Firefox™, Internet Explorer™, etc.). The subscriptionprocess can entail a policy in which each prospective subscriberprovides contact information (e.g., first and last name, email address,telephone number, etc.). Once a user becomes a subscriber, the portal202 can assign the user a login name and a password defined by thesubscriber or the portal. The services of the portal 202 can be free ofcharge, at a fee commensurate with the services provided, or inaccordance with specific promotions a combination of free services forsome subscribers and fee-based services for others.

In step 304, the subscribers can upload to the portal one or more UIdevice configurations utilized by their computing device 100. In thepresent context, a UI device can correspond to any device that can serveas a user interface that presents and/or controls in part operations ofthe computing device 100. Common forms of UI devices can include withoutlimitation a keyboard 108, a navigation device 110, a display 112, or anaudio system 114 with any of the embodiments previously described forthe computing device 100 of FIG. 1. Method 300 can also be applied toother forms of UI devices not described herein that at the present timeor in future generations of computing devices can serve as a userinterface.

UI device configurations can take on innumerable embodiments. Forexample, a keyboard configuration can correspond to one or morecharacter macros created by the subscriber uploading the configurationsto the portal. Macros can be useful for reducing time to enter asequence of characters, or can also be used to reassign keys of thekeyboard. For example, a subscriber may find it useful in certain gamingapplications to reassign keys (e.g., the number “9” reassigned to theletter “R”). Thus, when a particular game is running the selection ofthe “R” key produces a character output of “9” as if the “9” key hadbeen depressed. Similarly, the subscriber can create a macro in whichtwo or more keystrokes are generated from a single keystroke. Forexample, a macro can be created so that when the “F11” key is selected,a sequence of characters can be associated and generated with theselection of this key; for instance, selecting F11 can be designed toproduce the character string “Hello”. In addition to macros, thesubscriber can upload keyboard configurations managed by an operatingsystem (OS) of the computing device. OS-related keyboard configurationscan include without limitation a character repeat delay configuration, acharacter repeat rate configuration, a cursor blink rate configuration,a software driver for the keyboard, or combinations thereof.

A display configuration can correspond to color calibration settings ofthe display, sharpness settings of the display, refresh rate settings ofthe display, a desktop configuration, a window appearance configuration,a display resolution configuration, a configuration for a plurality ofmonitors that expand the desktop capacity of a computing device, atouch-sensitivity configuration for touch-sensitive displays, a softwaredriver for the display, or combinations thereof.

A navigation device configuration can correspond to one or morenavigation button configurations, a selection speed configuration forthe one or more navigation buttons, a selection lock configuration forthe one or more buttons, a pointer selection configuration, a pointerspeed configuration, a snap configuration for the pointer, a visibilityconfiguration for the pointer, a configuration for a rotationalmechanism of the navigation device, a navigation lift configuration forestablishing a bottom surface detection setting of an optical sensor (orsimilar surface sensor) of the navigation device, an accelerometerconfiguration, a software driver for the navigation device, orcombinations thereof.

An audio system configuration can correspond to a volume configuration,a balance configuration, an audio equalization configuration, a stereoconfiguration, a noise reduction configuration, a digital audio playbackconfiguration, an audio configuration for actions taken by thenavigation device, a configuration of a microphone of the audio system,a multi-dimensional audio settings (e.g., 3 or more dimensions such as a5.1 audio configuration, 7.1 audio configuration, and so on), a softwaredriver for the audio system, or combinations thereof.

From these illustrative embodiments of UI device configurations, asubscriber of the portal 202 can submit to the portal any portion of theaforementioned configurations or other suitable UI device configurationsfor archiving purposes. The submission process can take place by way ofa software application operating in the computing device 100 which iscapable of retrieving UI device configurations from an operating systemof the computing device or from another suitable storage location in thecomputing device or remote to the computing device (e.g., an externallocal or remote hard drive, remote server, etc.). The softwareapplication can be managed by the subscriber (user) of the computingdevice 100.

In step 306, subscribers can direct the portal 202 by way of a browserof the computing device 100 to organize the UI device configurations.For instance, a portion of subscribers having an interest for gaming maydesire to organize their UI device configurations amongst a socialnetwork of gamers. Another portion of subscribers may want to create asocial network of friends and family. Other subscribers may be lessdiscriminating and choose to share their UI device configurations withany subscriber of the portal 202. Thus, any social and/or organizationalhierarchy can be created by the subscribers, and/or a service providerof the portal 202. The subscribers can also establishing in step 308sharing limitations of the UI device configurations by limiting thecommunity of subscribers that can access their archived UI deviceconfigurations.

For example, some subscribers can define a buddy list for exchanging UIdevice configurations only with subscribers listed in the buddy list.Other subscribers can choose not to share their UI device configurationswith any subscribers. Such subscribers can choose to use the portal 202for private purposes such as for ease of portability between computingdevices 100. For instance, if a subscriber changes computing devices100, said subscriber can access the portal 202 by way of a commonbrowser and download a software application to the computing device 100to assist the subscriber in the transfer of the subscriber's UI deviceconfigurations to the new computing device. Before updating the UIdevice configurations of the new computing device 100, the softwareapplication can store preexisting settings in the event the subscriberwants to restore these setting at some point in time. This feature canbe useful in situations where the subscriber desires to transitionbetween computing devices 100 on a temporary basis (e.g., renting orborrowing a computing device). This restoration technique can also beapplied to subscribers that share UI device configurations.

Once the UI device configurations have been uploaded and organized withsharing limitations, the portal 202 can monitor requests generated bycomputing devices 100 of subscribers requesting a presentation in step312 of available UI device configurations, which can be downloaded andapplied to the UI devices of the requesting computing device in steps316-318 once a selection is detected in step 314. Steps 316-318 can alsoinclude a process or recording preexisting UI device configurationsbefore they are changed in the event the subscriber later desiresrestore them.

FIG. 4 depicts illustrative embodiments of GUI snapshots of portions ofsteps 312-318. In this illustration a first GUI presented by thecomputing device 100 of a subscriber depicts subscriber groupings whichcan be established by the subscriber in step 306 and/or the serviceprovider of the portal 202. In this illustration, the GUI showsgroupings for “Garners”, “Friends”, “Family”, “Private”, and otherswhich can be viewed by selecting “More”.

The Gamers GUI button can represent a social networking list ofsubscribers interested in gaming. A Friends or Family GUI button canrepresent a limited set of subscribers sharing UI device configurationsthat have been selectively defined in step 306 by a subscriber. ThePrivate GUI button can represent UI device configurations which thesubscriber of the portal 202 does not share with other subscribers. Inillustration purposes only, it is assumed that the subscriber selectsthe Gamers GUI button (depicted by the bold font and thicker outline).Responsive to said selection, the portal 202 presents a new GUI with aselection of Gamers. Each gamer can be identified by name or pseudo nameand can be assigned an average rating determined from an aggregation ofratings collected by the portal 202 from subscribers associated with theGamers grouping. The more stars depicted next to a gamer, the higher arating of satisfaction by subscribers downloading the UI deviceconfigurations supplied by the gamer.

In this illustration, the subscriber selects Gamer X perhaps because ofa higher satisfaction rating than the other gamers, or because thesubscriber likes the particular gamer. This selection transitions to aGUI that lists video games which Gamer X has provided differing UIdevice configurations. Upon selecting the first video game, the portal202 presents another GUI with a selection of UI device configurations.Each UI device can be listed separately so that the subscriber canselectively choose the UI devices of interest. In this example, thesubscriber chooses the navigation device and the audio systemconfigurations supplied by Gamer X for “Video Game 1”.

Upon selecting the OK GUI button, the portal 202 begins to download thenavigation device and audio system configurations to the computingdevice 100 of the subscriber (depicted by the download progress GUI).Once the navigation device and audio system configurations have beensuccessfully downloaded, the subscriber has the option to apply theconfigurations or reject the update. When the OK button is selected thecomputing device 100 updates the UI devices per the downloadedconfigurations and begins operating said UI devices in accordance withthese configurations. The update process can be executed byconfiguration software operating in the computing device by way of itsoperating system or software downloaded from the portal 202.

It would be apparent to an artisan of ordinary skill in the art that theGUIs depicted in FIG. 4 are illustrative and non-limiting. Said artisancan expect that any GUI arrangement can be used to effectuate steps312-318. Additionally, it would be apparent to said artisan that theorganization of subscribers, and the categorization of UI deviceconfigurations can be arranged in other ways while effectuating an endresult of updating UI device configurations of a computing device 100 byway of portal 202.

Method 300 can further include steps for rating the UI deviceconfigurations downloaded from the portal 202. In step 320, the portal202 can for example, detect that a subscriber has invoked a process tosubmit a satisfaction rating using a software application supplied bythe portal 202 and operating in the computing device 100 or by way of abrowser interface to the portal. The satisfaction rating can be a simpleGUI selection of zero to five stars, five stars being the highest levelof satisfaction, with half stars also selectable. Once the selection hasbeen made, the portal software operating in the computing device 100 orthe browser transmits to the portal 202 the satisfaction rating in step322, which the portal records in step 324 according to the source of theUI device configuration, which in this illustration, is Gamer X. Theportal 202 can use the supplied rating of this subscriber (and othersdownloading the same or similar UI device configurations of Gamer X) toupdate the satisfaction rating of Gamer X.

Whether or not a satisfaction rating is provided by the subscriber, thesubscriber can be presented by way of portal 202 or portal softwareoperating locally in the computing device 100 an option in step 326 torestore the preexisting UI device configurations. If a restorationoption is selected in step 326, the computing device 100 can proceed tostep 328 and restore UI device configurations existing before step 318.

FIG. 5 illustrates a method 500 of providing UI device configurations toone or more users. Method 500 can be used in the context of video games,but the present disclosure contemplates utilizing the deviceconfiguration for other application(s) executed by the computingdevice(s) 100. Method 500 can begin with step 502 in which UI deviceconfigurations are received. The configurations can be received at aremote server or servers, such as web servers 750 shown in FIG. 7. TheUI device configurations can be configurations or settings for thecomputing device 100, peripheral devices connectable with the computingdevice, and so forth. The configurations can be received from varioussources, including a user for his or her own personal use, one or moreother users for use by others, including providing of selective accessto the use, and other entities, such as software developers thatgenerate configurations for video games or other software applications.In step 504, the received UI device configurations can be stored in amemory that is accessible upon request, such as a database that can beaccessed by the web server 750 to satisfy a request for UI deviceconfiguration selections.

In one embodiment in step 506, the received UI device configurations canbe adjusted to generate different versions of the received UI deviceconfiguration. For example, different versions can be generated so as tobe compatible with different host and/or peripheral devices. Forinstance, a user may provide the web server 750 with a UI deviceconfiguration that includes macros usable on an XBOX® controller with aparticular game. The web server 750 can then generate a second versionof the UI device configuration that includes the same macros but thatare usable on a PlayStation® controller with the particular game. Thedifferent versions can also be generated based on a number of differentfactors, such as different versions of UI device configurations fordifferent games, where the configuration is translated to provide forthe same result across multiple different games (e.g., a sequence ofmoves by a game character that may require different inputs acrossdifferent games).

In another embodiment, the different versions can be generated toaccommodate, or otherwise be customized based on, conditions which maybe associated with a computing device 100 that later requests the UIdevice configuration. For example, versions of the UI deviceconfiguration can be generated in response to parental controls thatseek to reduce violent content. Web server 750 may receive a first UIdevice configuration that can be used for presenting violent content.The web server 750 can generate a second version of the UI deviceconfiguration that can be used to present a limited amount of theviolent content which is age appropriate. The web server 750 cangenerate a third version of the UI device configuration that removes allof the violent content.

Other factors can also be utilized in generating different versions ofthe UI device configurations. For example, the location of a requestingdevice can be a factor for adjusting UI device configurations. Asanother example, the environment and/or time of day of a requestingdevice can also be a factor, such as whether the viewing area is darkwhich would require graphics that were brighter. Other graphics,including text, can be adjusted based on the location, such as changingthe language of text or the scenery based on the location of arequesting device. Based upon a number of these factors, the web server750 can generate different versions of the UI device configurations tobe stored in memory in step 504 in the event that a requestor associatedwith the particular factors seeks a UI device configuration. The presentdisclosure also contemplates these versions being generated afterreceipt of the request, such as based on information (e.g.,configuration criteria) associated with the request.

In step 508, a request for UI device configurations can be received atthe web server 750 such as from computing device 100. In response to therequest, the web server 750 can determine a group of UI deviceconfigurations chosen from among the stored UI device configurations instep 510. It should be understood that the stored configurations canalso include configurations located at multiple storage devices,including storage devices of third parties. For example, a request canbe received for UI device configurations for playing a particular gameusing a particular computing device. The web server 750 can search thememory that includes the stored UI device configurations and candetermine which, if any, of the stored configurations can be utilizedfor playing the particular game using the particular computing device.Operational parameters of the host device, peripheral device, displaydevice, network, game being played, and so forth can be among thefactors used to determine which, if any, stored configurations arecompatible for the request.

In step 512, a determination can be made as to whether there is anyconfiguration criteria associated with the request. Configurationcriteria is one or more factors that can be used for filtering thedetermined group of UI device configurations to generate target UIdevice configurations that are customized to the user based on theconfiguration criteria. If there is no configuration criteria associatedwith the request then method 500 proceeds to step 514 and provides thegroup of UI device configurations for presentation in a GUI. The GUI canbe presented at the requesting computing device 100 and can be presentedin various formats. For instance, selectable options for the UI deviceconfigurations can be presented, which may or may not include additionalinformation, such as identifying a gamer that donated the configuration,identifying a satisfaction rating associated with the configurationand/or the gamer, identifying a history of selections by the requestorthat may be associated with one of the particular configurations, suchas whether the requestor has ever utilized other configurations donatedby the particular gamer, and so forth. Categories of configurations canbe generated by the web server 750 and/or by the requestor, includingbased on the configuration criteria, social networks, friends, family,satisfaction ratings and so forth.

If, on the other hand, there is configuration criteria associated withthe request, then method 500 can proceed to step 516 to filter thedetermined group of UI device configurations in order to generate targetUI device configurations selected from among the group. In step 518, thetarget UI device configurations can be provided to the computing device100. The target UI device configurations can be presented in the GUI atthe computing device 100 so that the requestor can then select fromamongst the target configurations. The target configurations arefiltered such that the requestor receives configurations that are bettersuited to the criteria associated with the requestor, such as therequestor's environment, parental controls, location, friends, family,time of day and so forth.

The configuration criteria can be received, or otherwise accessed, in anumber of different ways. For example, the requestor can includeinformation in the request that is utilized for the configurationcriteria, such as selecting criteria that can be utilized for thefiltering of step 516, including a location of the requestor, the timeof day, the playing environment, temperature, humidity and so forth. Asexplained with respect to method 300 and shown in system 700 of FIG. 7,the requestor can access the available UI device configurations throughuse of the portal 202. For instance, FIG. 6 illustrates a number of GUIwindows that can be presented by a computing device 100 and used by arequestor when obtaining UI device configurations. One or more of theGUI windows can include a selection of configuration criteria, such asbuttons 650. The buttons 650, or other selection techniques, can beutilized by the requestor to communicate configuration criteria to theweb server 750 or otherwise direct the web server to apply criteria foruse in the filtering process.

In one embodiment, the buttons 650 can be categories of criteria thatare to be utilized by the web server 750 in the filtering process, wherethe web server can obtain criteria data, such as through querying therequestor's computing device 100, based on the selected category of thecriteria. For example, the requestor can select the “time” criteriacategory from the GUI window and the web server 750 can query thecomputing device 100 for its local time. In another example, therequestor can select the “lighting” criteria category utilizing buttons650 and the web server 750 can obtain lighting data associated with therequestor's computing device 100, such as accessing an image obtained bya camera coupled with the computing device 100. The data or otherinformation associated with the selected categories can be obtained withor without the interaction, intervention or assistance of the requestor.For instance, a selection of the “lighting” category from the GUI canresult in an image camera of the computing device 100 capturing an imageautomatically. The image can then be utilized for determining thelighting. In another embodiment, the requestor can provide informationthrough use of the GUI that is utilized alone or with data automaticallyobtained by the web server 750 from the computing device 100, such asallowing the requestor to input into the GUI whether the room isbrightly lit and so forth.

In another embodiment, information associated with the request can beutilized to access configuration criteria, such as an identity of arequestor which is then utilized by the web server 750 to determine thatparental controls are applicable to the requestor. In one embodiment,additional information can be obtained that is utilized for selectingthe applicable configuration criteria, such as accessing GPS coordinatesassociated with the computing device, or utilizing the determinedlocation of the computing device to identify the temperature, humidity,time of day, and so forth. In another embodiment, user profilesassociated with the requestor can be utilized that provide forconfiguration criteria.

In step 520, the web server 750 can receive a selection of the UI deviceconfigurations that were presented in the GUI. Based on the receivedselection, the web server can provide provisioning information to thecomputing device 100 so that the computing device can be configured withthe selected UI device configuration.

In one embodiment shown generally in system 700 of FIG. 7, web server750 can be a plurality of web servers in a configuration cloud 725. Thecloud 725 can provide computing devices 100 with UI deviceconfigurations such as over network 201 through use of portal 202. Cloud725 can operate by providing multilateral settings or configurations forvarious computing devices. For instance, a first web server 750 canprovide a host device, such as a desk top computer or a mobile phone,with first settings that are compatible with the host device. A secondweb server 750 can provide a peripheral device, which is associated withthe host device, with second settings (e.g., UI device configurations)that are compatible with the peripheral device and the host device towhich the peripheral device is coupled. In this example, the peripheraldevice can include a processor for utilizing the UI deviceconfigurations as described in U.S. patent application Ser. No.12/509,509 filed on Jul. 27, 2009, entitled “Device for ManagingOperations of Accessories”, the disclosure of which is herebyincorporated by reference. The first and the second servers 750 can bein communication with each other to coordinate the providing of thesettings. For example, the first and second servers 750 can coordinatewith each other to determine the group of host device settings and thecompatible group of UI device configurations that are to be presentedfor selection to the requestor. After a selection is made, theprovisioning of the host device and the peripheral device can further becoordinated to facilitate delivery of the settings to the host andperipheral devices, including coordinating a communication session fordelivery.

In one embodiment, the configuration cloud 725 can perform configurationmatching between various web servers 750 to facilitate the presentationof, and/or provisioning of, settings and UI device configurations forhost and peripheral devices. In another embodiment, the web servers 750can be dedicated devices that are associated with different devicesand/or groups of devices. For instance, a first web server 750 can bededicated to presenting and/or provisioning settings associated withXBOX® host devices while a second web server 750 is dedicated topresenting and/or provisioning settings associated with PlayStation®host devices. In another embodiment, the web servers 750 can bededicated based on the type of software being executed by the hostdevice, such as the operating system, and/or by the type of peripheraldevice being utilized by the host device, such as joysticks orkeyboards. In another embodiment, the presenting and/or provisioning ofthe settings and UI device configurations can be performed by aplurality of web servers 750, which may or may not be performed inparallel, to facilitate the process. The web servers 750 can communicatedirectly with each other to facilitate the provisioning process and/orcan communicate indirectly with each other, such as through a centralserver or through other web servers.

In one embodiment, the presentation and/or provisioning of settings andUI device configurations can be based on peripheral devices coupled withthe host device. For example, web server 750 can download first settingsto a host device when it is detected or otherwise determined that thedevice, such as a mobile phone, does not have a peripheral devicecoupled thereto. Web server 750 can download second settings and/or UIdevice configurations when it is detected or otherwise determined thatthe mobile phone device has a peripheral device coupled thereto. In thisexample, the type of peripheral device coupled with the mobile phonehost device can be utilized as a factor in the selection of the secondsettings and/or UI device configurations from among a group of availablesettings and/or UI device configurations.

From the foregoing descriptions, it would be evident to an artisan withordinary skill in the art that the aforementioned embodiments can bemodified, reduced, or enhanced without departing from the scope andspirit of the claims described below. For example, method 300 can beadapted so that UI device configurations can be archived partially. Thatis, subscribers can choose to upload or download portions of UI deviceconfigurations rather than a full configuration set. In yet anotherembodiment, method 300 can be adapted so that the service provider ofthe portal 202 exclusively defines the grouping of subscribers andcategories of UI device configurations. This embodiment can be useful insocial networks in which an expected behavior or outcome is desired bythe service provider of the portal 202.

In one embodiment, the provisioning of settings and UI deviceconfigurations can be billed by various means, including number ofdownloads, periodic subscriptions and so forth. In another embodiment,revenue sharing can be implemented based on the provisioning of settingsand UI device configurations. For example, the web server 750 canmonitor the number of downloads of a particular UI device configurationthat was provided to the web server by a first gamer. The web server 750can then share collected revenues with the first gamer that aregenerated as a result of the downloads. Continuing with this example,the web server 750 can employ digital rights management processes orother techniques, such as user authentication, to prevent unauthorizedcopying of UI device configurations. However, the present disclosurealso contemplates one or more exemplary embodiments that do not employrestrictions against further distribution of UI device configurations orsettings.

In one embodiment, the configuration criteria can be based on monitorednetwork activities. For example, the web server 750 can detect the loadon a portion of the network that the computing device is operating in,and can determine from this load that certain UI device configurationsmay be more appropriate to a user than other UI device configurations.The more appropriate UI device configurations can be presented to thecomputing device for selection or can be provisioned to the computingdevice without further selection being required.

In one embodiment, the configuration cloud 725 can be a centralizedsystem with a controller server (not shown) that communicates with eachof the other web servers 750 for provisioning computing devices with thesettings and/or UI device configurations. In another embodiment, theconfiguration cloud 725 can be a distributed system that performs theprovisioning through communication directly amongst the web servers 750.Other arrangements are also contemplated by the present disclosure, suchas master-slave arrangements between web servers 750 that are associatedwith host devices and web server that are associated with peripheraldevices of the host devices.

The exemplary embodiments describe generating different versions of auser-provided configuration based on various criteria, including versioncriteria which may or may not be received from the donating user. Itshould be understood by one of ordinary skill in the art that thedifferent versions of the configuration can be generated at varioustimes. For example, different versions can be generated and stored in adatabase in anticipation of a request that matches the particularversion. In another embodiment, a different version can be generatedafter receiving a request, such as according to configuration criteriathat is associated with the request. A new version can be generated“on-the-fly” by the web server 750 based on the configuration criteriaassociated with a request and presented as an option and/or provisionedto the requestor. In another embodiment, the newly generated version canthen be stored in the database in the event that another request isreceived that matches the new version of the configuration.

In one embodiment, a user can store UI device configurations at a remoteserver so that the configurations can be more readily provisioned at alater time. For instance, the user can store UI device configurationsassociated with one or more of a gaming location, a gaming time and/orgaming participants. If the user begins to play or otherwise access hisor her computing device at a corresponding location, corresponding timeand/or with corresponding participants, then the UI deviceconfigurations can be accessed by the user's computing device. In oneembodiment, the access can be automatically performed, such as detectingwhen a user has entered an Internet café or detecting when the user'sfriends have begun to play a video game. The configuration data can beused to place restrictions on or otherwise adjust the user interface,such as preventing voice commands at an Internet café.

In another embodiment, the configuration data can be utilized to alterthe presentation of the software application, such as a video game. Forexample, a first peripheral device (e.g., a joystick) having firstconfiguration data can be used to play a video game in a first style,while a second peripheral device (e.g., a keyboard) having secondconfiguration data can be used to play the video game in a second style.The two different styles can be presented differently, such as first andthird person views, and so forth.

Other suitable modifications can be applied to the present disclosure.Accordingly, the reader is directed to the claims for a fullerunderstanding of the breadth and scope of the present disclosure.

FIG. 8 depicts an exemplary diagrammatic representation of a machine inthe form of a computer system 800 within which a set of instructions,when executed, may cause the machine to perform any one or more of themethodologies discussed above. In some embodiments, the machine operatesas a standalone device. In some embodiments, the machine may beconnected (e.g., using a network) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient user machine in server-client user network environment, or as apeer machine in a peer-to-peer (or distributed) network environment.

The machine may comprise a server computer, a client user computer, apersonal computer (PC), a tablet PC, a laptop computer, a desktopcomputer, a control system, a network router, switch or bridge, or anymachine capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that machine. It will beunderstood that a device of the present disclosure includes broadly anyelectronic device that provides voice, video or data communication.Further, while a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The computer system 800 may include a processor 802 (e.g., a centralprocessing unit (CPU), a graphics processing unit (GPU, or both), a mainmemory 804 and a static memory 806, which communicate with each othervia a bus 808. The computer system 800 may further include a videodisplay unit 810 (e.g., a liquid crystal display (LCD), a flat panel, asolid state display, or a cathode ray tube (CRT)). The computer system800 may include an input device 812 (e.g., a keyboard), a cursor controldevice 814 (e.g., a mouse), a disk drive unit 816, a signal generationdevice 818 (e.g., a speaker or remote control) and a network interfacedevice 820.

The disk drive unit 816 may include a machine-readable medium 822 onwhich is stored one or more sets of instructions (e.g., software 824)embodying any one or more of the methodologies or functions describedherein, including those methods illustrated above. The instructions 824may also reside, completely or at least partially, within the mainmemory 804, the static memory 806, and/or within the processor 802during execution thereof by the computer system 800. The main memory 804and the processor 802 also may constitute machine-readable media.

Dedicated hardware implementations including, but not limited to,application specific integrated circuits, programmable logic arrays andother hardware devices can likewise be constructed to implement themethods described herein. Applications that may include the apparatusand systems of various embodiments broadly include a variety ofelectronic and computer systems. Some embodiments implement functions intwo or more specific interconnected hardware modules or devices withrelated control and data signals communicated between and through themodules, or as portions of an application-specific integrated circuit.Thus, the example system is applicable to software, firmware, andhardware implementations.

In accordance with various embodiments of the present disclosure, themethods described herein are intended for operation as software programsrunning on a computer processor. Furthermore, software implementationscan include, but not limited to, distributed processing orcomponent/object distributed processing, parallel processing, or virtualmachine processing can also be constructed to implement the methodsdescribed herein.

The present disclosure contemplates a machine readable medium containinginstructions 824, or that which receives and executes instructions 824from a propagated signal so that a device connected to a networkenvironment 826 can send or receive voice, video or data, and tocommunicate over the network 826 using the instructions 824. Theinstructions 824 may further be transmitted or received over a network826 via the network interface device 820.

While the machine-readable medium 822 is shown in an example embodimentto be a single medium, the term “machine-readable medium” should betaken to include a single medium or multiple media (e.g., a centralizedor distributed database, and/or associated caches and servers) thatstore the one or more sets of instructions. The term “machine-readablemedium” shall also be taken to include any medium that is capable ofstoring, encoding or carrying a set of instructions for execution by themachine and that cause the machine to perform any one or more of themethodologies of the present disclosure.

The term “machine-readable medium” shall accordingly be taken toinclude, but not be limited to: solid-state memories such as a memorycard or other package that houses one or more read-only (non-volatile)memories, random access memories, or other re-writable (volatile)memories; magneto-optical or optical medium such as a disk or tape;and/or a digital file attachment to e-mail or other self-containedinformation archive or set of archives is considered a distributionmedium equivalent to a tangible storage medium. Accordingly, thedisclosure is considered to include any one or more of amachine-readable medium or a distribution medium, as listed herein andincluding art-recognized equivalents and successor media, in which thesoftware implementations herein are stored.

Although the present specification describes components and functionsimplemented in the embodiments with reference to particular standardsand protocols, the disclosure is not limited to such standards andprotocols. Each of the standards for Internet and other packet switchednetwork transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) representexamples of the state of the art. Such standards are periodicallysuperseded by faster or more efficient equivalents having essentiallythe same functions. Accordingly, replacement standards and protocolshaving the same functions are considered equivalents.

The illustrations of embodiments described herein are intended toprovide a general understanding of the structure of various embodiments,and they are not intended to serve as a complete description of all theelements and features of apparatus and systems that might make use ofthe structures described herein. Many other embodiments will be apparentto those of skill in the art upon reviewing the above description. Otherembodiments may be utilized and derived therefrom, such that structuraland logical substitutions and changes may be made without departing fromthe scope of this disclosure. Figures are also merely representationaland may not be drawn to scale. Certain proportions thereof may beexaggerated, while others may be minimized. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense.

Such embodiments of the inventive subject matter may be referred toherein, individually and/or collectively, by the term “invention” merelyfor convenience and without intending to voluntarily limit the scope ofthis application to any single invention or inventive concept if morethan one is in fact disclosed. Thus, although specific embodiments havebeen illustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

The Abstract of the Disclosure is provided to comply with 37 C.F.R.§1.72(b), requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In addition, in the foregoing DetailedDescription, it can be seen that various features are grouped togetherin a single embodiment for the purpose of streamlining the disclosure.This method of disclosure is not to be interpreted as reflecting anintention that the claimed embodiments require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed embodiment. Thus the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separately claimed subject matter.

1. A method comprising: receiving, by a system including a server, aconfiguration request from a first computing device, wherein the requestis received over a network; obtaining, by the system, configurationcriteria associated with a location of the first computing device;selecting, by the system, at least one User Interface (UI) deviceconfiguration from among a plurality of UI device configurations basedon the configuration criteria; and providing configuration dataassociated with the selected at least one UI device configuration to thefirst computing device.
 2. The method of claim 1, wherein theconfiguration data is configured for presentation by the first computingdevice in a Graphical User Interface (GUI) that identifies the selectedat least one UI device configuration.
 3. The method of claim 1, whereinthe configuration data is configured for provisioning at least one ofthe first computing device or a first peripheral device coupled with thefirst computing device.
 4. The method of claim 1, wherein theconfiguration data causes a presentation by a video gaming beingexecuted by the first computing device to be altered.
 5. The method ofclaim 1, comprising: receiving, by the system, a first UI deviceconfiguration; and modifying the first UI device configuration togenerate a second UI device configuration, wherein the selected at leastone UI device configuration includes the second UI device configuration.6. The method of claim 5, wherein the first UI device configuration isreceived from a second computing device, and wherein the second UIdevice configuration is generated based on version criteria that is notreceived from the second computing device.
 7. The method of claim 6,wherein the version criteria is at least one of a user environment,brightness, or a time of day.
 8. The method of claim 6, wherein theversion criteria comprises age-based content ratings.
 9. The method ofclaim 2, comprising: receiving a selection from among the selections ofthe GUI; and providing first provisioning information to the firstcomputing device based on the selection.
 10. The method of claim 9,comprising: selecting second provisioning information based on theselection; and providing the second provisioning information to aperipheral device operably coupled with the first computing device. 11.The method of claim 10, wherein the selected at least one UI deviceconfiguration is received by the system from a second computing device,and wherein the first and second computing devices are associated with asame user.
 12. The method of claim 1, wherein the obtaining of theconfiguration criteria is based on the system querying the firstcomputing device for additional criteria information without userintervention.
 13. A computing device comprising: a memory storingcomputer instructions; and a controller coupled with the memory, whereinthe controller, responsive to executing the computer instructions,performs operations comprising: providing a configuration request to afirst server, wherein the first server is remote from the controller,wherein the controller is in communication with the first server over anetwork; providing configuration criteria associated with the request tothe first server; and receiving configuration data associated with atleast one target UI device configuration from the first server, whereinthe at least one target UI device configuration is selected from among aplurality of UI device configurations based on the configurationcriteria.
 14. The computing device of claim 13, wherein theconfiguration criteria is associated with at least one of a gamingenvironment, a time of gaming, or gaming participants.
 15. The computingdevice of claim 13, comprising a display device operably coupled withthe controller, wherein the controller responsive to executing thecomputer instructions performs operations comprising: presenting aGraphical User Interface (GUI) on the display device based on theconfiguration data, wherein the GUI displays options for the at leastone target UI device configuration; and receiving user input of aselection from among the options.
 16. The computing device of claim 15,comprising a peripheral device operably coupled with the controller,wherein the peripheral device is programmed to receive provisioninginformation from the first server that allows for implementing theselection of the option.
 17. The computing device of claim 16, wherein apresentation of a video game is altered based on the provisioninginformation.
 18. The computing device of claim 13, wherein theconfiguration criteria is provided by the controller to the first serverwithout user intervention.
 19. The computing device of claim 15, whereinthe at least one target UI device configuration is uploaded to the firstserver from another computing device.
 20. A non-transitorycomputer-readable storage medium comprising computer instructions which,responsive to being executed by a processor, cause the processor toperform operations comprising: receiving a configuration request over anetwork from a computing device; selecting at least one User Interface(UI) device configuration from among a plurality of UI deviceconfigurations based on configuration criteria associated with thecomputing device; and providing configuration data associated with theselected at least one UI device configuration that enables provisioningof a peripheral device associated with the computing device for playingof a video game utilizing the computing device.